/* -*-jde-*- */
package ui.empresaInterfaz;

import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;
import javax.faces.event.ActionEvent;

/**
 *
 *
 * @author Victor Miguel Peralta Santa Anna
 * @since Enero 2012
 * @version 0.1
 */
public class VacanteBean implements Serializable {

    private String id = "-1";
    private String titulo;
    private String descripcion;
    private String funciones;
    private String profBuscados;
    private String salario;
    private String requisitos;
    private String ofrecen;
    private String fechaPublicacion;
    private String informacion;
    private String nombreContacto;
    private String correoContacto;
    private String telefono;
    private String beca;
    private String activado = "No aprovada";
    private String pracProf;
    private String htmlDescripcion;
    private double latitud = 19.324213;
    private double longitud = -99.180625;
    private double distanciaMax = 0;
    private MapModel emptyModel;
    private MapModel markedModel;

    /**
     * Añadimos un marcador.
     *
     * @param actionEvent El evento que desencadena la acción de añadir un
     * marcador.
     */
    public void addMarker(ActionEvent actionEvent) {

        Marker marker = new Marker(new LatLng(latitud, longitud), "");

        getEmptyModel().addOverlay(marker);
        Logger.getLogger(VacanteBean.class.getCanonicalName()).log(Level.INFO, " PUNTO: {0} {1}", new Object[]{latitud, longitud});

        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_INFO,
                "Lugar de trabajo añadido en:",
                "Lat:" + latitud + ", Lng:" + longitud));
    }

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @return the latitud
     */
    public double getLatitud() {
        return latitud;
    }

    /**
     * @param latitud the latitud to set
     */
    public void setLatitud(double latitud) {
        this.latitud = latitud;
    }

    /**
     * @return the longitud
     */
    public double getLongitud() {
        return longitud;
    }

    /**
     * @param longitud the longitud to set
     */
    public void setLongitud(double longitud) {
        this.longitud = longitud;
    }

    /**
     * @return the emptyModel
     */
    public MapModel getEmptyModel() {
        return emptyModel;
    }

    /**
     * @param emptyModel the emptyModel to set
     */
    public void setEmptyModel(MapModel emptyModel) {
        this.emptyModel = emptyModel;
    }

    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return the titulo
     */
    public String getTitulo() {
        return titulo;
    }

    /**
     * @param titulo the titulo to set
     */
    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    /**
     * @return the descripcion
     */
    public String getDescripcion() {
        return descripcion;
    }

    /**
     * @param descripcion the descripcion to set
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * @return the funciones
     */
    public String getFunciones() {
        return funciones;
    }

    /**
     * @param funciones the funciones to set
     */
    public void setFunciones(String funciones) {
        this.funciones = funciones;
    }

    /**
     * @return the profBuscados
     */
    public String getProfBuscados() {
        return profBuscados;
    }

    /**
     * @param profBuscados the profBuscados to set
     */
    public void setProfBuscados(String profBuscados) {
        this.profBuscados = profBuscados;
    }

    /**
     * @return the salario
     */
    public String getSalario() {
        return salario;
    }

    /**
     * @param salario the salario to set
     */
    public void setSalario(String salario) {
        this.salario = salario;
    }

    /**
     * @return the requisitos
     */
    public String getRequisitos() {
        return requisitos;
    }

    /**
     * @param requisitos the requisitos to set
     */
    public void setRequisitos(String requisitos) {
        this.requisitos = requisitos;
    }

    /**
     * @return the ofrecen
     */
    public String getOfrecen() {
        return ofrecen;
    }

    /**
     * @param ofrecen the ofrecen to set
     */
    public void setOfrecen(String ofrecen) {
        this.ofrecen = ofrecen;
    }

    /**
     * @return the fechaPublicacion
     */
    public String getFechaPublicacion() {
        return fechaPublicacion;
    }

    /**
     * @param fechaPublicacion the fechaPublicacion to set
     */
    public void setFechaPublicacion(String fechaPublicacion) {
        this.fechaPublicacion = fechaPublicacion;
    }

    /**
     * @return the informacion
     */
    public String getInformacion() {
        return informacion;
    }

    /**
     * @param informacion the informacion to set
     */
    public void setInformacion(String informacion) {
        this.informacion = informacion;
    }

    /**
     * @return the nombreContacto
     */
    public String getNombreContacto() {
        return nombreContacto;
    }

    /**
     * @param nombreContacto the nombreContacto to set
     */
    public void setNombreContacto(String nombreContacto) {
        this.nombreContacto = nombreContacto;
    }

    /**
     * @return the correoContacto
     */
    public String getCorreoContacto() {
        return correoContacto;
    }

    /**
     * @param correoContacto the correoContacto to set
     */
    public void setCorreoContacto(String correoContacto) {
        this.correoContacto = correoContacto;
    }

    /**
     * @return the telefono
     */
    public String getTelefono() {
        return telefono;
    }

    /**
     * @param telefono the telefono to set
     */
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    /**
     * @return the beca
     */
    public String getBeca() {
        return beca;
    }

    /**
     * @param beca the beca to set
     */
    public void setBeca(String beca) {
        this.beca = beca;
    }

    /**
     * @return the activado
     */
    public String getActivado() {
        return activado;
    }

    /**
     * @param activado the activado to set
     */
    public void setActivado(String activado) {
        this.activado = activado;
    }

    /**
     * @return the pracProf
     */
    public String getPracProf() {
        return pracProf;
    }

    /**
     * @param pracProf the pracProf to set
     */
    public void setPracProf(String pracProf) {
        this.pracProf = pracProf;
    }

    /**
     * @return the htmlDescripcion
     */
    public String getHtmlDescripcion() {
        return htmlDescripcion;
    }

    /**
     * @param htmlDescripcion the htmlDescripcion to set
     */
    public void setHtmlDescripcion(String htmlDescripcion) {
        this.htmlDescripcion = htmlDescripcion;
    }

    /**
     * @return the markedModel
     */
    public MapModel getMarkedModel() {
        Marker marker = new Marker(new LatLng(latitud, longitud), "");

        markedModel.addOverlay(marker);
        return markedModel;
    }

    /**
     * @param markedModel the markedModel to set
     */
    public void setMarkedModel(MapModel markedModel) {
        this.markedModel = markedModel;
    }

    public double getDistanciaMax() {
        return distanciaMax;
    }

    public void setDistanciaMax(double distanciaMax) {
        this.distanciaMax = distanciaMax;
    }
}
